The background description includes information that may be useful in understanding the present invention. It is not an admission that any of the information provided herein is prior art or relevant to the presently claimed invention, or that any publication specifically or implicitly referenced is prior art.
Computer networks continue to grow in size and complexity to service the ever growing communication demands of their users. Recent developments in network fabrics have allowed dramatic increase in data throughput and reduction of transmission latency over conventional network topologies (or infrastructures). A network fabric is a type of network infrastructure that is formed by connecting at least two devices (e.g., edge devices) via multiple network nodes (or switches). These network nodes are usually connected with one another via optical links (e.g., optical fibers). In addition, the interconnected network nodes can form more than one physical path between each pair of edge devices, allowing data to be transmitted among the multiple physical paths in parallel to generate better total data throughput (i.e., the amount of data being transmitted from one edge device to another edge device within a period of time) and lower transmission latency (i.e., the amount of time for data to be transmitted from one device to another). Therefore, network fabrics have become the preferred network structure for organizations with offices that are spread out geographically and that demand high data transfer speed.
The greater throughput of network fabrics also allow them to provide a network for distributed computers. Example computing fabrics include Beowulf clusters and parallel virtual machine (PVM) developed by the University of Tennessee, Oak Ridge National Laboratory and Emory University. U.S. Pat. No. 6,779,016 to Aziz et al. titled “Extensible Computing System” also describes using a networking fabric to create a virtual server farm out of a collection of processors and storage elements.
While network fabrics generally have better data throughput and lower latency than conventional network structure, the data transmission efficiency is far from being optimized. Specifically, it has been found that the channels within each physical network link are not optimally utilized most of the time. In addition, as the number of network elements increases, it is becoming more difficult to provide efficient data transmission due to the lack of a world view within each network node. Network fabrics supporting multiple logical data paths through the fabric from one host to another exacerbates communication latency issues because of the numerous logical structures (e.g., routes or data paths), which may potentially be a part of the data flow path of the network bus.
Efforts have been made to improve the utilization efficiency of network fabrics. For example, InfiniBand® (http://www.infinibandta.org/home) provides high speed fabric connectivity among High Performance Computing (HPC) systems while having moderately low latency. Unfortunately, InfiniBand and other HPC networks are limited to communicating over a distance less than several hundred meters rendering them unsuitable for network environments spanning across geographically significant distances. Additionally, such networks at best can only connect computer systems or some peripherals, but not all network elements.
U.S. Pat. No. 6,105,122 to Muller et al. titled “I/O Protocol for Highly Configurable Multi-Node Processing System” discusses transferring data from computer nodes to I/O nodes through a fabric of switch nodes. While useful for communicating among edge nodes, the configuration described by Muller still does not address the desire for having an efficient port-to-port network communication.
E.P. 1,236,360 to Sultana et al. titled “Integrating Signaling System Number 7 (SS7) Networks with Networks Using Multi-Protocol Label Switching (MPLS)” describes a label switching technique that provides for an abstraction layer between network layer protocols and link layer protocols. Although Sultana provides for reducing the amount of time and computational resources of forwarding data packets among fabric nodes, Sultana does not provide for application layer control over or flexibility in allocating data packets among network nodes.
U.S. patent publication 2003/0005039 to Craddock et al. titled “End Node Partition Using Local Identifiers” discloses a distributed computing system having components including edge nodes, switches, and routers that form a fabric that interconnects the edge nodes. The disclosed fabric employs InifinBand to form the fabric. However, Craddock also does not address the need to provide application layer control over data flow allocation among the elements of a network fabric.
Thus, there is still a need for further improving on the efficiency of network fabrics.
All publications identified herein are incorporated by reference to the same extent as if each individual publication or patent application were specifically and individually indicated to be incorporated by reference. Where a definition or use of a term in an incorporated reference is inconsistent or contrary to the definition of that term provided herein, the definition of that term provided herein applies and the definition of that term in the reference does not apply.
In some embodiments, the numbers expressing quantities of ingredients, properties such as concentration, reaction conditions, and so forth, used to describe and claim certain embodiments of the invention are to be understood as being modified in some instances by the term “about.” Accordingly, in some embodiments, the numerical parameters set forth in the written description and attached claims are approximations that can vary depending upon the desired properties sought to be obtained by a particular embodiment. In some embodiments, the numerical parameters should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of some embodiments of the invention are approximations, the numerical values set forth in the specific examples are reported as precisely as practicable. The numerical values presented in some embodiments of the invention may contain certain errors necessarily resulting from the standard deviation found in their respective testing measurements.
Unless the context dictates the contrary, all ranges set forth herein should be interpreted as being inclusive of their endpoints and open-ended ranges should be interpreted to include only commercially practical values. Similarly, all lists of values should be considered as inclusive of intermediate values unless the context indicates the contrary.
As used in the description herein and throughout the claims that follow, the meaning of “a,” “an,” and “the” includes plural reference unless the context clearly dictates otherwise. Also, as used in the description herein, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise.
The recitation of ranges of values herein is merely intended to serve as a shorthand method of referring individually to each separate value falling within the range. Unless otherwise indicated herein, each individual value is incorporated into the specification as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g. “such as”) provided with respect to certain embodiments herein is intended merely to better illuminate the invention and does not pose a limitation on the scope of the invention otherwise claimed. No language in the specification should be construed as indicating any non-claimed element essential to the practice of the invention.
Groupings of alternative elements or embodiments of the invention disclosed herein are not to be construed as limitations. Each group member can be referred to and claimed individually or in any combination with other members of the group or other elements found herein. One or more members of a group can be included in, or deleted from, a group for reasons of convenience and/or patentability. When any such inclusion or deletion occurs, the specification is herein deemed to contain the group as modified thus fulfilling the written description of all Markush groups used in the appended claims.